home *** CD-ROM | disk | FTP | other *** search
Wrap
/* File: TextEncodingConverter.h Contains: Text Encoding Conversion Interfaces. Copyright: © 1984-1997 by Apple Computer, Inc. All rights reserved. */ #ifndef __TEXTENCODINGCONVERTER__ #define __TEXTENCODINGCONVERTER__ #ifndef __TYPES__ #include <Types.h> #endif #ifndef __MIXEDMODE__ #include <MixedMode.h> #endif #ifndef __TEXTCOMMON__ #include <TextCommon.h> #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT_SUPPORTED #pragma import on #endif #if PRAGMA_ALIGN_SUPPORTED #pragma options align=mac68k #endif typedef OSType TECPluginSignature; typedef UInt32 TECPluginVersion; /* plugin signatures */ enum { kTECSignature = 'encv', kTECUnicodePluginSignature = 'puni', kTECJapanesePluginSignature = 'pjpn', kTECChinesePluginSignature = 'pzho', kTECKoreanPluginSignature = 'pkor' }; /* converter object reference */ typedef struct OpaqueTECObjectRef* TECObjectRef; typedef struct OpaqueTECSnifferObjectRef* TECSnifferObjectRef; typedef OSType TECPluginSig; struct TECConversionInfo { TextEncoding sourceEncoding; TextEncoding destinationEncoding; UInt16 reserved1; UInt16 reserved2; }; typedef struct TECConversionInfo TECConversionInfo; /* return number of encodings types supported by user's configuraton of the encoding converter */ extern pascal OSStatus TECCountAvailableTextEncodings(ItemCount *numberEncodings); /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */ extern pascal OSStatus TECGetAvailableTextEncodings(TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); /* return number of from-to encoding conversion pairs supported */ extern pascal OSStatus TECCountDirectTextEncodingConversions(ItemCount *numberOfEncodings); /* fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. */ extern pascal OSStatus TECGetDirectTextEncodingConversions(TECConversionInfo availableConversions[], ItemCount maxAvailableConversions, ItemCount *actualAvailableConversions); /* return number of encodings a given encoding can be converter into */ extern pascal OSStatus TECCountDestinationTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings); /* fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. */ extern pascal OSStatus TECGetDestinationTextEncodings(TextEncoding inputEncoding, TextEncoding destinationEncodings[], ItemCount maxDestinationEncodings, ItemCount *actualDestinationEncodings); /* get info about a text encoding */ extern pascal OSStatus TECGetTextEncodingInternetName(TextEncoding textEncoding, Str255 encodingName); extern pascal OSStatus TECGetTextEncodingFromInternetName(TextEncoding *textEncoding, ConstStr255Param encodingName); /* create/dispose converters */ extern pascal OSStatus TECCreateConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, TextEncoding outputEncoding); extern pascal OSStatus TECCreateConverterFromPath(TECObjectRef *newEncodingConverter, const TextEncoding inPath[], ItemCount inEncodings); extern pascal OSStatus TECDisposeConverter(TECObjectRef newEncodingConverter); /* convert text encodings */ extern pascal OSStatus TECClearConverterContextInfo(TECObjectRef encodingConverter); extern pascal OSStatus TECConvertText(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength); extern pascal OSStatus TECFlushText(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength); /* one-to-many routines */ extern pascal OSStatus TECCountSubTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings); extern pascal OSStatus TECGetSubTextEncodings(TextEncoding inputEncoding, TextEncoding subEncodings[], ItemCount maxSubEncodings, ItemCount *actualSubEncodings); extern pascal OSStatus TECGetEncodingList(TECObjectRef encodingConverter, ItemCount *numEncodings, Handle *encodingList); extern pascal OSStatus TECCreateOneToManyConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, ItemCount numOutputEncodings, const TextEncoding outputEncodings[]); extern pascal OSStatus TECConvertTextToMultipleEncodings(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns); extern pascal OSStatus TECFlushMultipleEncodings(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns); /* international internet info */ extern pascal OSStatus TECCountWebTextEncodings(RegionCode locale, ItemCount *numberEncodings); extern pascal OSStatus TECGetWebTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); extern pascal OSStatus TECCountMailTextEncodings(RegionCode locale, ItemCount *numberEncodings); extern pascal OSStatus TECGetMailTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); /* examine text encodings */ extern pascal OSStatus TECCountAvailableSniffers(ItemCount *numberOfEncodings); extern pascal OSStatus TECGetAvailableSniffers(TextEncoding availableSniffers[], ItemCount maxAvailableSniffers, ItemCount *actualAvailableSniffers); extern pascal OSStatus TECCreateSniffer(TECSnifferObjectRef *encodingSniffer, TextEncoding testEncodings[], ItemCount numTextEncodings); extern pascal OSStatus TECSniffTextEncoding(TECSnifferObjectRef encodingSniffer, TextPtr inputBuffer, ByteCount inputBufferLength, TextEncoding testEncodings[], ItemCount numTextEncodings, ItemCount numErrsArray[], ItemCount maxErrs, ItemCount numFeaturesArray[], ItemCount maxFeatures); extern pascal OSStatus TECDisposeSniffer(TECSnifferObjectRef encodingSniffer); extern pascal OSStatus TECClearSnifferContextInfo(TECSnifferObjectRef encodingSniffer); #if PRAGMA_ALIGN_SUPPORTED #pragma options align=reset #endif #if PRAGMA_IMPORT_SUPPORTED #pragma import off #endif #ifdef __cplusplus } #endif #endif /* __TEXTENCODINGCONVERTER__ */